LFS──Linux from Scratch,就是一种从网上直接下载源码,从头编译LINUX的安装方式。它不是发行版,只是一个菜谱,告诉你到哪里去买菜(下载源码),怎么把这些生东西( raw code) 作成符合自己口味的菜肴──个性化的linux,不单单是个性的桌面。
简介
《LinuxFromScratch》(LFS)是杰勒德·比克曼斯等人编写的安装
Linux的教科书,描述了从
源代码编译Linux系统的方法。这本书可以从在LinuxFromScratch网站上免费下载到,当前最新的版本为8.0。
为了保持LFS的基本性和专注性,另一本书《BeyondLinuxFromScratch》(BLFS)提供了在LFS的基础上,进一步完善Linux
基本系统的指引。在BLFS中,读者可以学习到如何为系统增加网络、
X桌面、声音、
打印机和
扫描仪支持。从5.0版开始,BLFS开始与LFS的
版本号保持同步。
除了LFS和BLFS,还有描述
交叉编译的《CrossLinuxfromScratch》(CLFS)以及专注于安全的《HardenedLinuxFromScratch》(HLFS)。
《Automated Linux From Scratch》 provides tools for automating and managing LFS and BLFS builds
步骤
尽管目标是安装一个与现有发行版毫无关系的系统,安装LFS仍然不能无中生有,而必须要有一个可以编译软件包的运行中的
Linux系统。这个系统一般称为宿主系统。对于新机器,可以选用Linux发行版提供的光盘操作系统(
LiveCD)作为宿主。LFS工程曾提供LiveCD但当前不提供。在
宿主操作系统上安装LFS,需要的步骤如下:
制作
制作过程
快速浏览官方文档即可(没必要仔细翻阅,抓几个关键点即可)
一般套路
1,
tar xf foo-version.tar.*
./configure --prefix=xxx --xxx=xxxx ······
make
make install
cd ..
rm -rf foo-version
2,
tar xf foo-version.tar.*
cd foo-version
patch -Np1 -i ../xxx.patch
mkdir ../foo-build
cd foo-build
../foo-version/configure --prefix=xxx --xxx=xxxx ······
make
make install
cd ..
rm -rf foo-version foo-build
具体编译参数复制文档中对应部分即可
相关项目
除此之外,该项目另有一个名为CBLFS(Community Driven BLFS)的项目,该项目实际是一个Wiki网站,依靠网友的自发贡献来提交各种
软件包的安装方式。
意义
LFS的意义不在于机械地编译,事实上,按照文档描述,简单地点击键盘即可生成一个简略的发行版,这并不是存在时间达13年的LFS的目的。LFS的意义在于让使用者理解编译参数的作用,理解补丁的作用,理解LFS附带的脚本的
工作过程,从而达到脱离LFS、独立制作并完善发行版的目的。
由于LFS提供的是一个通用的Linux发行版制作流程,LFS并不能保证制作最终产物符合制作者个人口味,也不能保证质量。